// 封装通用的接口调用模块
import axios from 'axios'
// import {
//   options
// } from 'runjs'

// 基准地址
const baseURL = '/dev-api'

// 创建一个独立的实例
const instance = axios.create({
  baseURL: baseURL
})

// 封装通用的接口调用函数
// 按照这种方式封装时：无论何种请求方式。参数都用data传递，更加方便
export default (options) => {
  let key = null
  if (options.method) {
    // method属性是存在的
    key = options.method.toUpperCase() === 'GET' ? 'params' : 'data'
  } else {
    // 如果没有传递method属性，默认采用get请求方式
    key = 'params'
  }
  return instance({
    // 短路运算
    method: options.method || 'get',
    // method: '',
    // method: options.method,
    // url: '',
    url: options.url,
    // 用于传递除get之外的所有请求方式：post/put/delete
    // data: options.data,
    // 仅仅处理get 请求
    // params: options.params
    // ES6规则：对象的key可以是动态的变量
    [key]: options.data
    // [options.method === 'get' ? 'params' : 'data']: options.data
  })
}
